#ifndef MYDATA_H
#define MYDATA_H
#include "cJSON.h"
#include <time.h>

// 订单结构体
typedef struct {
    char TrainNumber[20];      // 车次号
    char start[50];           // 起始站
    char end[50];             // 终点站
    char DepartTime[10];      // 出发时间
    char date[20];            // 日期
    char ArriveTime[10];      // 到达时间
    char TimeDifference[10];  // 时间差
    int seatNumber;           // 座位号
} UserOrder;

// 用户结构体
typedef struct User {
    char username[50];        // 用户名
    char userPassword[50];    // 密码
    char state[20];           // 状态: "正常" 或 "封禁"
    UserOrder *orders;        // 订单数组
    int orderCount;           // 订单数量
    struct User *next;        // 下一个用户指针
} User;

// 用户链表结构体
typedef struct {
    User *head;              // 链表头节点
    int count;               // 用户数量
} UserList;
// 座位信息结构体
typedef struct {
    double SeatPrice;        // 座位价格
    int TotalSeats;          // 总座位数
    char *SeatStatus;        // 座位状态字符串 ('1'可用, '0'不可用)
    char **SeatNumbers;      // 座位号数组
    int AvailableSeats;      // 可用座位数
} SeatInfo;

// 班次信息结构体
typedef struct Train {
    char TrainNumber[20];    // 车次号
    char start[50];          // 起始站
    char end[50];            // 终点站
    char DepartTime[10];     // 出发时间
    char date[20];           // 日期
    char ArriveTime[10];     // 到达时间
    SeatInfo *seats;         // 座位信息
    int seatCount;           // 座位类型数量
    struct Train *next;      // 下一个班次指针
} Train;

// 班次链表结构体
typedef struct {
    Train *head;             // 链表头节点
    int count;               // 班次数量
} TrainList;
#endif // MYDATA_H